// module.exports = router
var express = require("express");
var router = express.Router();
var fs = require("fs");
var multer = require("multer");
const user_login = require("../model/user_login");
let path = require("path");

// 使用硬盘存储模式设置存放接收到的文件的路径以及文件名
var storage = multer.diskStorage({
  destination: function(req, file, cb) {
    // 接收到文件后输出的保存路径（若不存在则需要创建）
    cb(null, path.join(__dirname, "../public/images/userAvatar/"));
  },
  filename: function(req, file, cb) {
    // 将保存文件名设置为 时间戳 + 文件原始名，比如 151342376785-123.jpg
    console.log(file);
    let extname = file.mimetype.split("/")[1];
    let imgname =
      Date.now() +
      parseInt(Math.random() * 999) +
      parseInt(Math.random() * 2222);
    let keepname = imgname + "用戶头像" + "." + extname;
    cb(null, keepname);
  }
});

// // 创建文件夹
// var createFolder = function (folder) {
//   try {
//     // 测试 path 指定的文件或目录的用户权限,我们用来检测文件是否存在
//     // 如果文件路径不存在将会抛出错误"no such file or directory"
//     fs.accessSync(folder);
//   } catch (e) {
//     // 文件夹不存在，以同步的方式创建文件目录。
//     fs.mkdirSync(folder);
//   }
// };

// // var uploadFolder = '../public/images/userAvatar/';
// // createFolder(uploadFolder);

// 创建 multer 对象
var upload = multer({
  storage: storage
});

router.post("/api/v1/userAvatar", upload.array("file", 10), async function(
  req,
  res,
  next
) {
  try {
    console.log(req.body);
    var files = req.files;
    var user = await user_login.findById({ _id: req.body._id }).exec();
    if (user.head_portrait !== "avatar.png") {
      fs.unlink(
        path.join(
          __dirname,
          "../public/images/userAvatar/" + user.head_portrait
        ),
        function(error) {
          if (error) {
            console.log(error);
            return false;
          }
          console.log("删除文件成功");
        }
      );
    }
    user_login.updateOne(
      {
        _id: req.body._id
      },
      {
        $set: {
          head_portrait: files[0].filename
        }
      },
      function(err, doc) {
        if (err) return next(err);
        res.json({
          code: 200,
          message: "修改成功"
        });
      }
    );

    // 接收文件成功后返回数据给前端
  } catch (error) {
    res.status(500).send(error);
  }
});

// 导出模块（在 app.js 中引入）
module.exports = router;
